#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <iomanip>
using namespace std;
//#define MAXSIZE 2000000
//int arr[MAXSIZE] = { 0 };
//int t[MAXSIZE] = { 0 };
//int main()
//{
//	int n, m;
//	cin >> n >> m;
//	for (int i = 1; i <= n; i++)
//		cin >> arr[i];
//	for (int i = 0; i < m; i++)
//		cin >> t[i];
//	for (int i = 0; i < m; i++)
//		cout << arr[t[i]] << endl;
//	return 0;
//}\
//
//#include <queue>
//int main()
//{
//	int n, m,i;
//	cin >> n >> m;
//	queue<int> q;
//	for (i = 1; i <= n; i++)
//		q.push(i);
//	i = 1;
//	while (q.empty() != true)
//	{
//		if (i == m)
//		{
//			cout << q.front() << " ";
//			q.pop();
//			i = 1;
//		}
//		else
//		{
//			i++;
//			q.push(q.front());
//			q.pop();
//		}
//	}
//	return 0;
//}
//typedef struct s {
//	int l, r;
//};
//int main()
//{
//	int N;
//	cin >> N;
//	int i = 0;
//	int k,p;
//	s q[100001];
//	for (i = 1; i <= N; i++)
//	{
//		q[i].l = 0;
//		q[i].r = 0;
//	}
//	for (i = 1; i < N; i++)
//	{
//		cin >> k >> p;
//		if (p == 0)
//		{
//			if (q[k].l != 0)
//			{
//				q[i + 1].l = q[k].l;
//				q[q[k].l].r = i + 1;
//			}
//			q[k].l = i + 1;
//			q[i + 1].r = k;
//		}
//		else
//		{
//			if (q[k].r != 0)
//			{
//				q[i + 1].r = q[k].r;
//				q[q[k].r].l = i + 1;
//			}
//			q[k].r = i + 1;
//			q[i + 1].l = k;
//		}
//	}
//	int M;
//	cin >> M;
//	int d;
//	for (i = 0; i < M; i++)
//	{
//		cin >> d;
//		q[q[d].l].r = q[d].r;
//		q[q[d].r].l = q[d].l;
//		q[d].r = 0;
//		q[d].l = 0;
//	}
//	int t = 0;
//	for (i = 1; i <= N; i++)
//	{
//		if (q[i].l == 0 && q[i].r == 0)
//		{
//			continue;
//		}
//		else if (q[i].l == 0)
//		{
//			cout << i << " ";
//			t = q[i].r;
//			while (t != 0)
//			{
//				cout<<t<<" ";
//				t = q[t].r;
//			}
//		}
//	}
//	return 0;
//}